{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: llama-index in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (0.10.12)\n",
      "Requirement already satisfied: llama-index-agent-openai<0.2.0,>=0.1.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.5)\n",
      "Requirement already satisfied: llama-index-cli<0.2.0,>=0.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.5)\n",
      "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.12 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.10.12)\n",
      "Requirement already satisfied: llama-index-embeddings-openai<0.2.0,>=0.1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.6)\n",
      "Requirement already satisfied: llama-index-indices-managed-llama-cloud<0.2.0,>=0.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.3)\n",
      "Requirement already satisfied: llama-index-legacy<0.10.0,>=0.9.48 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.9.48)\n",
      "Requirement already satisfied: llama-index-llms-openai<0.2.0,>=0.1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.6)\n",
      "Requirement already satisfied: llama-index-multi-modal-llms-openai<0.2.0,>=0.1.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.4)\n",
      "Requirement already satisfied: llama-index-program-openai<0.2.0,>=0.1.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.4)\n",
      "Requirement already satisfied: llama-index-question-gen-openai<0.2.0,>=0.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.3)\n",
      "Requirement already satisfied: llama-index-readers-file<0.2.0,>=0.1.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.5)\n",
      "Requirement already satisfied: llama-index-readers-llama-parse<0.2.0,>=0.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index) (0.1.3)\n",
      "Requirement already satisfied: llama-index-vector-stores-chroma<0.2.0,>=0.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.1.3)\n",
      "Requirement already satisfied: PyYAML>=6.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (6.0.1)\n",
      "Requirement already satisfied: SQLAlchemy>=1.4.49 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.12->llama-index) (2.0.27)\n",
      "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (3.9.3)\n",
      "Requirement already satisfied: dataclasses-json in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (0.6.4)\n",
      "Requirement already satisfied: deprecated>=1.2.9.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (1.2.14)\n",
      "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (1.0.8)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (2023.10.0)\n",
      "Requirement already satisfied: httpx in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (0.27.0)\n",
      "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (0.1.13)\n",
      "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (1.6.0)\n",
      "Requirement already satisfied: networkx>=3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (3.1)\n",
      "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (3.8.1)\n",
      "Requirement already satisfied: numpy in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (1.24.4)\n",
      "Requirement already satisfied: openai>=1.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (1.12.0)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (2.0.3)\n",
      "Requirement already satisfied: pillow>=9.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (10.2.0)\n",
      "Requirement already satisfied: requests>=2.31.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (2.31.0)\n",
      "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (8.2.3)\n",
      "Requirement already satisfied: tiktoken>=0.3.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (0.6.0)\n",
      "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (4.66.2)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (4.9.0)\n",
      "Requirement already satisfied: typing-inspect>=0.8.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.12->llama-index) (0.9.0)\n",
      "Requirement already satisfied: beautifulsoup4<5.0.0,>=4.12.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (4.12.3)\n",
      "Requirement already satisfied: bs4<0.0.3,>=0.0.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (0.0.2)\n",
      "Requirement already satisfied: pymupdf<2.0.0,>=1.23.21 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (1.23.25)\n",
      "Requirement already satisfied: pypdf<5.0.0,>=4.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (4.0.2)\n",
      "Requirement already satisfied: llama-parse<0.4.0,>=0.3.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-readers-llama-parse<0.2.0,>=0.1.2->llama-index) (0.3.4)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.12->llama-index) (4.0.3)\n",
      "Requirement already satisfied: soupsieve>1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from beautifulsoup4<5.0.0,>=4.12.3->llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (2.5)\n",
      "Requirement already satisfied: wrapt<2,>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from deprecated>=1.2.9.3->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.16.0)\n",
      "Requirement already satisfied: chromadb<0.5.0,>=0.4.22 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.4.23)\n",
      "Requirement already satisfied: onnxruntime<2.0.0,>=1.17.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.17.0)\n",
      "Requirement already satisfied: tokenizers<0.16.0,>=0.15.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.15.2)\n",
      "Requirement already satisfied: pydantic>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llamaindex-py-client<0.2.0,>=0.1.13->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.10.11)\n",
      "Requirement already satisfied: anyio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (4.3.0)\n",
      "Requirement already satisfied: certifi in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (2024.2.2)\n",
      "Requirement already satisfied: httpcore==1.* in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.0.4)\n",
      "Requirement already satisfied: idna in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (3.6)\n",
      "Requirement already satisfied: sniffio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.3.0)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (0.14.0)\n",
      "Requirement already satisfied: click in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.12->llama-index) (8.1.7)\n",
      "Requirement already satisfied: joblib in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.3.2)\n",
      "Requirement already satisfied: regex>=2021.8.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.12->llama-index) (2023.12.25)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.9.0)\n",
      "Requirement already satisfied: PyMuPDFb==1.23.22 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pymupdf<2.0.0,>=1.23.21->llama-index-readers-file<0.2.0,>=0.1.4->llama-index) (1.23.22)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.12->llama-index) (3.3.2)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.12->llama-index) (2.2.1)\n",
      "Requirement already satisfied: greenlet!=0.4.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.12->llama-index) (3.0.3)\n",
      "Requirement already satisfied: mypy-extensions>=0.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.0.0)\n",
      "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.12->llama-index) (3.20.2)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.12->llama-index) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.12->llama-index) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.12->llama-index) (2024.1)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from anyio->httpx->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.2.0)\n",
      "Requirement already satisfied: build>=1.0.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.0.3)\n",
      "Requirement already satisfied: chroma-hnswlib==0.7.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.7.3)\n",
      "Requirement already satisfied: fastapi>=0.95.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.109.2)\n",
      "Requirement already satisfied: uvicorn>=0.18.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.27.1)\n",
      "Requirement already satisfied: posthog>=2.4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.4.2)\n",
      "Requirement already satisfied: pulsar-client>=3.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.4.0)\n",
      "Requirement already satisfied: opentelemetry-api>=1.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.22.0)\n",
      "Requirement already satisfied: opentelemetry-exporter-otlp-proto-grpc>=1.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.22.0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation-fastapi>=0.41b0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.43b0)\n",
      "Requirement already satisfied: opentelemetry-sdk>=1.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.22.0)\n",
      "Requirement already satisfied: pypika>=0.48.9 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.48.9)\n",
      "Requirement already satisfied: overrides>=7.3.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (7.7.0)\n",
      "Requirement already satisfied: importlib-resources in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (6.1.1)\n",
      "Requirement already satisfied: grpcio>=1.58.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.62.0)\n",
      "Requirement already satisfied: bcrypt>=4.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (4.1.2)\n",
      "Requirement already satisfied: typer>=0.9.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.9.0)\n",
      "Requirement already satisfied: kubernetes>=28.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (29.0.0)\n",
      "Requirement already satisfied: mmh3>=4.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (4.1.0)\n",
      "Requirement already satisfied: orjson>=3.9.12 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.9.14)\n",
      "Requirement already satisfied: packaging>=17.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.12->llama-index) (23.2)\n",
      "Requirement already satisfied: coloredlogs in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (15.0.1)\n",
      "Requirement already satisfied: flatbuffers in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (23.5.26)\n",
      "Requirement already satisfied: protobuf in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (4.25.3)\n",
      "Requirement already satisfied: sympy in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.12)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.12->llama-index) (1.16.0)\n",
      "Requirement already satisfied: huggingface_hub<1.0,>=0.16.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from tokenizers<0.16.0,>=0.15.1->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.20.3)\n",
      "Requirement already satisfied: pyproject_hooks in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from build>=1.0.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.0.0)\n",
      "Requirement already satisfied: tomli>=1.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from build>=1.0.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (2.0.1)\n",
      "Requirement already satisfied: starlette<0.37.0,>=0.36.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from fastapi>=0.95.2->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.36.3)\n",
      "Requirement already satisfied: filelock in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from huggingface_hub<1.0,>=0.16.4->tokenizers<0.16.0,>=0.15.1->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.13.1)\n",
      "Requirement already satisfied: google-auth>=1.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (2.28.1)\n",
      "Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.7.0)\n",
      "Requirement already satisfied: requests-oauthlib in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.3.1)\n",
      "Requirement already satisfied: oauthlib>=3.2.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.2.2)\n",
      "Requirement already satisfied: importlib-metadata<7.0,>=6.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-api>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (6.11.0)\n",
      "Requirement already satisfied: backoff<3.0.0,>=1.10.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (2.2.1)\n",
      "Requirement already satisfied: googleapis-common-protos~=1.52 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.62.0)\n",
      "Requirement already satisfied: opentelemetry-exporter-otlp-proto-common==1.22.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.22.0)\n",
      "Requirement already satisfied: opentelemetry-proto==1.22.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.22.0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation-asgi==0.43b0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.43b0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation==0.43b0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.43b0)\n",
      "Requirement already satisfied: opentelemetry-semantic-conventions==0.43b0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.43b0)\n",
      "Requirement already satisfied: opentelemetry-util-http==0.43b0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.43b0)\n",
      "Requirement already satisfied: setuptools>=16.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation==0.43b0->opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (69.1.0)\n",
      "Requirement already satisfied: asgiref~=3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from opentelemetry-instrumentation-asgi==0.43b0->opentelemetry-instrumentation-fastapi>=0.41b0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.7.2)\n",
      "Requirement already satisfied: monotonic>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.6)\n",
      "Requirement already satisfied: httptools>=0.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.6.1)\n",
      "Requirement already satisfied: python-dotenv>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.0.1)\n",
      "Requirement already satisfied: uvloop!=0.15.0,!=0.15.1,>=0.14.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.19.0)\n",
      "Requirement already satisfied: watchfiles>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.21.0)\n",
      "Requirement already satisfied: websockets>=10.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (12.0)\n",
      "Requirement already satisfied: humanfriendly>=9.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from coloredlogs->onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (10.0)\n",
      "Requirement already satisfied: mpmath>=0.19 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from sympy->onnxruntime<2.0.0,>=1.17.0->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (1.3.0)\n",
      "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (5.3.2)\n",
      "Requirement already satisfied: pyasn1-modules>=0.2.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.3.0)\n",
      "Requirement already satisfied: rsa<5,>=3.1.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (4.9)\n",
      "Requirement already satisfied: zipp>=0.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from importlib-metadata<7.0,>=6.0->opentelemetry-api>=1.2.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (3.17.0)\n",
      "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes>=28.1.0->chromadb<0.5.0,>=0.4.22->llama-index-vector-stores-chroma<0.2.0,>=0.1.1->llama-index-cli<0.2.0,>=0.1.2->llama-index) (0.5.1)\n",
      "Requirement already satisfied: llama-index-vector-stores-mongodb in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (0.1.4)\n",
      "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-vector-stores-mongodb) (0.10.12)\n",
      "Requirement already satisfied: pymongo<5.0.0,>=4.6.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-vector-stores-mongodb) (4.6.2)\n",
      "Requirement already satisfied: PyYAML>=6.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (6.0.1)\n",
      "Requirement already satisfied: SQLAlchemy>=1.4.49 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2.0.27)\n",
      "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.9.3)\n",
      "Requirement already satisfied: dataclasses-json in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.6.4)\n",
      "Requirement already satisfied: deprecated>=1.2.9.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.2.14)\n",
      "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.0.8)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2023.10.0)\n",
      "Requirement already satisfied: httpx in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.27.0)\n",
      "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.1.13)\n",
      "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.6.0)\n",
      "Requirement already satisfied: networkx>=3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.1)\n",
      "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.8.1)\n",
      "Requirement already satisfied: numpy in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.24.4)\n",
      "Requirement already satisfied: openai>=1.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.12.0)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2.0.3)\n",
      "Requirement already satisfied: pillow>=9.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (10.2.0)\n",
      "Requirement already satisfied: requests>=2.31.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2.31.0)\n",
      "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (8.2.3)\n",
      "Requirement already satisfied: tiktoken>=0.3.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.6.0)\n",
      "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (4.66.2)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (4.9.0)\n",
      "Requirement already satisfied: typing-inspect>=0.8.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.9.0)\n",
      "Requirement already satisfied: dnspython<3.0.0,>=1.16.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pymongo<5.0.0,>=4.6.1->llama-index-vector-stores-mongodb) (2.6.1)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (4.0.3)\n",
      "Requirement already satisfied: wrapt<2,>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from deprecated>=1.2.9.3->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.16.0)\n",
      "Requirement already satisfied: pydantic>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llamaindex-py-client<0.2.0,>=0.1.13->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.10.11)\n",
      "Requirement already satisfied: anyio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (4.3.0)\n",
      "Requirement already satisfied: certifi in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2024.2.2)\n",
      "Requirement already satisfied: httpcore==1.* in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.0.4)\n",
      "Requirement already satisfied: idna in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.6)\n",
      "Requirement already satisfied: sniffio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.3.0)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (0.14.0)\n",
      "Requirement already satisfied: click in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (8.1.7)\n",
      "Requirement already satisfied: joblib in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.3.2)\n",
      "Requirement already satisfied: regex>=2021.8.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2023.12.25)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.9.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.3.2)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2.2.1)\n",
      "Requirement already satisfied: greenlet!=0.4.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.0.3)\n",
      "Requirement already satisfied: mypy-extensions>=0.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.0.0)\n",
      "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (3.20.2)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (2024.1)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from anyio->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.2.0)\n",
      "Requirement already satisfied: packaging>=17.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (23.2)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-vector-stores-mongodb) (1.16.0)\n",
      "Requirement already satisfied: llama-index-embeddings-fireworks==0.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (0.1.2)\n",
      "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-embeddings-fireworks==0.1.2) (0.10.12)\n",
      "Requirement already satisfied: llama-index-llms-openai<0.2.0,>=0.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-embeddings-fireworks==0.1.2) (0.1.6)\n",
      "Requirement already satisfied: PyYAML>=6.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (6.0.1)\n",
      "Requirement already satisfied: SQLAlchemy>=1.4.49 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2.0.27)\n",
      "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.9.3)\n",
      "Requirement already satisfied: dataclasses-json in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.6.4)\n",
      "Requirement already satisfied: deprecated>=1.2.9.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.2.14)\n",
      "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.0.8)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2023.10.0)\n",
      "Requirement already satisfied: httpx in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.27.0)\n",
      "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.1.13)\n",
      "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.6.0)\n",
      "Requirement already satisfied: networkx>=3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.1)\n",
      "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.8.1)\n",
      "Requirement already satisfied: numpy in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.24.4)\n",
      "Requirement already satisfied: openai>=1.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.12.0)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2.0.3)\n",
      "Requirement already satisfied: pillow>=9.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (10.2.0)\n",
      "Requirement already satisfied: requests>=2.31.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2.31.0)\n",
      "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (8.2.3)\n",
      "Requirement already satisfied: tiktoken>=0.3.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.6.0)\n",
      "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (4.66.2)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (4.9.0)\n",
      "Requirement already satisfied: typing-inspect>=0.8.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.9.0)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (4.0.3)\n",
      "Requirement already satisfied: wrapt<2,>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from deprecated>=1.2.9.3->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.16.0)\n",
      "Requirement already satisfied: pydantic>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llamaindex-py-client<0.2.0,>=0.1.13->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.10.11)\n",
      "Requirement already satisfied: anyio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (4.3.0)\n",
      "Requirement already satisfied: certifi in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2024.2.2)\n",
      "Requirement already satisfied: httpcore==1.* in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.0.4)\n",
      "Requirement already satisfied: idna in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.6)\n",
      "Requirement already satisfied: sniffio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.3.0)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (0.14.0)\n",
      "Requirement already satisfied: click in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (8.1.7)\n",
      "Requirement already satisfied: joblib in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.3.2)\n",
      "Requirement already satisfied: regex>=2021.8.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2023.12.25)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.9.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.3.2)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2.2.1)\n",
      "Requirement already satisfied: greenlet!=0.4.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.0.3)\n",
      "Requirement already satisfied: mypy-extensions>=0.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.0.0)\n",
      "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (3.20.2)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (2024.1)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from anyio->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.2.0)\n",
      "Requirement already satisfied: packaging>=17.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (23.2)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-embeddings-fireworks==0.1.2) (1.16.0)\n",
      "Requirement already satisfied: llama-index-llms-fireworks in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (0.1.1)\n",
      "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-llms-fireworks) (0.10.12)\n",
      "Requirement already satisfied: llama-index-llms-openai<0.2.0,>=0.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-llms-fireworks) (0.1.6)\n",
      "Requirement already satisfied: PyYAML>=6.0.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (6.0.1)\n",
      "Requirement already satisfied: SQLAlchemy>=1.4.49 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.0.27)\n",
      "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.9.3)\n",
      "Requirement already satisfied: dataclasses-json in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.6.4)\n",
      "Requirement already satisfied: deprecated>=1.2.9.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.2.14)\n",
      "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.8)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2023.10.0)\n",
      "Requirement already satisfied: httpx in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.27.0)\n",
      "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.1.13)\n",
      "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.6.0)\n",
      "Requirement already satisfied: networkx>=3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.1)\n",
      "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.8.1)\n",
      "Requirement already satisfied: numpy in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.24.4)\n",
      "Requirement already satisfied: openai>=1.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.12.0)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.0.3)\n",
      "Requirement already satisfied: pillow>=9.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (10.2.0)\n",
      "Requirement already satisfied: requests>=2.31.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.31.0)\n",
      "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (8.2.3)\n",
      "Requirement already satisfied: tiktoken>=0.3.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.6.0)\n",
      "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.66.2)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.9.0)\n",
      "Requirement already satisfied: typing-inspect>=0.8.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.9.0)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.0.3)\n",
      "Requirement already satisfied: wrapt<2,>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from deprecated>=1.2.9.3->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.16.0)\n",
      "Requirement already satisfied: pydantic>=1.10 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from llamaindex-py-client<0.2.0,>=0.1.13->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.10.11)\n",
      "Requirement already satisfied: anyio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.3.0)\n",
      "Requirement already satisfied: certifi in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.2.2)\n",
      "Requirement already satisfied: httpcore==1.* in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.4)\n",
      "Requirement already satisfied: idna in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.6)\n",
      "Requirement already satisfied: sniffio in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.3.0)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.14.0)\n",
      "Requirement already satisfied: click in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (8.1.7)\n",
      "Requirement already satisfied: joblib in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.3.2)\n",
      "Requirement already satisfied: regex>=2021.8.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2023.12.25)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.9.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.3.2)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.2.1)\n",
      "Requirement already satisfied: greenlet!=0.4.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.0.3)\n",
      "Requirement already satisfied: mypy-extensions>=0.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.0)\n",
      "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.20.2)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.1)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from anyio->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.2.0)\n",
      "Requirement already satisfied: packaging>=17.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (23.2)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.16.0)\n",
      "Requirement already satisfied: pymongo in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (4.6.2)\n",
      "Requirement already satisfied: dnspython<3.0.0,>=1.16.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pymongo) (2.6.1)\n",
      "Requirement already satisfied: datasets in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (2.17.1)\n",
      "Requirement already satisfied: filelock in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (3.13.1)\n",
      "Requirement already satisfied: numpy>=1.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (1.24.4)\n",
      "Requirement already satisfied: pyarrow>=12.0.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (15.0.0)\n",
      "Requirement already satisfied: pyarrow-hotfix in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (0.6)\n",
      "Requirement already satisfied: dill<0.3.9,>=0.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (0.3.8)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (2.0.3)\n",
      "Requirement already satisfied: requests>=2.19.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (2.31.0)\n",
      "Requirement already satisfied: tqdm>=4.62.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (4.66.2)\n",
      "Requirement already satisfied: xxhash in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (3.4.1)\n",
      "Requirement already satisfied: multiprocess in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (0.70.16)\n",
      "Requirement already satisfied: fsspec<=2023.10.0,>=2023.1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from fsspec[http]<=2023.10.0,>=2023.1.0->datasets) (2023.10.0)\n",
      "Requirement already satisfied: aiohttp in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (3.9.3)\n",
      "Requirement already satisfied: huggingface-hub>=0.19.4 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (0.20.3)\n",
      "Requirement already satisfied: packaging in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (23.2)\n",
      "Requirement already satisfied: pyyaml>=5.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from datasets) (6.0.1)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from aiohttp->datasets) (4.0.3)\n",
      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from huggingface-hub>=0.19.4->datasets) (4.9.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.19.0->datasets) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.19.0->datasets) (3.6)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.19.0->datasets) (2.2.1)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from requests>=2.19.0->datasets) (2024.2.2)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->datasets) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->datasets) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas->datasets) (2024.1)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.16.0)\n",
      "Requirement already satisfied: pandas in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (2.0.3)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas) (2.8.2)\n",
      "Requirement already satisfied: pytz>=2020.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.1 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas) (2024.1)\n",
      "Requirement already satisfied: numpy>=1.21.0 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from pandas) (1.24.4)\n",
      "Requirement already satisfied: six>=1.5 in /mnt/disks/data/llama_index/.venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n"
     ]
    }
   ],
   "source": [
    "!pip install -q llama-index llama-index-vector-stores-mongodb llama-index-embeddings-fireworks==0.1.2 llama-index-llms-fireworks\n",
    "!pip install -q pymongo datasets pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set up Fireworks.ai Key\n",
    "import os\n",
    "import getpass\n",
    "\n",
    "fw_api_key = getpass.getpass(\"Fireworks API Key:\")\n",
    "os.environ[\"FIREWORKS_API_KEY\"] = fw_api_key"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>restaurant_id</th>\n",
       "      <th>attributes</th>\n",
       "      <th>cuisine</th>\n",
       "      <th>DogsAllowed</th>\n",
       "      <th>embedding</th>\n",
       "      <th>OutdoorSeating</th>\n",
       "      <th>borough</th>\n",
       "      <th>address</th>\n",
       "      <th>_id</th>\n",
       "      <th>name</th>\n",
       "      <th>menu</th>\n",
       "      <th>TakeOut</th>\n",
       "      <th>location</th>\n",
       "      <th>PriceRange</th>\n",
       "      <th>HappyHour</th>\n",
       "      <th>review_count</th>\n",
       "      <th>sponsored</th>\n",
       "      <th>stars</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>40366661</td>\n",
       "      <td>{'Alcohol': ''none'', 'Ambience': '{'romantic'...</td>\n",
       "      <td>Tex-Mex</td>\n",
       "      <td>None</td>\n",
       "      <td>[-0.14520384, 0.018315623, -0.018330636, -0.10...</td>\n",
       "      <td>True</td>\n",
       "      <td>Manhattan</td>\n",
       "      <td>{'building': '627', 'coord': [-73.975980999999...</td>\n",
       "      <td>{'$oid': '6095a34a7c34416a90d3206b'}</td>\n",
       "      <td>Baby Bo'S Burritos</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>{'coordinates': [-73.97598099999999, 40.745132...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>None</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>40367442</td>\n",
       "      <td>{'Alcohol': ''beer_and_wine'', 'Ambience': '{'...</td>\n",
       "      <td>American</td>\n",
       "      <td>True</td>\n",
       "      <td>[-0.11977468, -0.02157107, 0.0038846824, -0.09...</td>\n",
       "      <td>True</td>\n",
       "      <td>Staten Island</td>\n",
       "      <td>{'building': '17', 'coord': [-74.1350211, 40.6...</td>\n",
       "      <td>{'$oid': '6095a34a7c34416a90d3209e'}</td>\n",
       "      <td>Buddy'S Wonder Bar</td>\n",
       "      <td>[Grilled cheese sandwich, Baked potato, Lasagn...</td>\n",
       "      <td>True</td>\n",
       "      <td>{'coordinates': [-74.1350211, 40.6369042], 'ty...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>None</td>\n",
       "      <td>62</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>40364610</td>\n",
       "      <td>{'Alcohol': ''none'', 'Ambience': '{'touristy'...</td>\n",
       "      <td>American</td>\n",
       "      <td>None</td>\n",
       "      <td>[-0.1004329, -0.014882699, -0.033005167, -0.09...</td>\n",
       "      <td>True</td>\n",
       "      <td>Staten Island</td>\n",
       "      <td>{'building': '37', 'coord': [-74.138263, 40.54...</td>\n",
       "      <td>{'$oid': '6095a34a7c34416a90d31ff6'}</td>\n",
       "      <td>Great Kills Yacht Club</td>\n",
       "      <td>[Mozzarella sticks, Mushroom swiss burger, Spi...</td>\n",
       "      <td>True</td>\n",
       "      <td>{'coordinates': [-74.138263, 40.546681], 'type...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>None</td>\n",
       "      <td>72</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40365288</td>\n",
       "      <td>{'Alcohol': None, 'Ambience': '{'touristy': Fa...</td>\n",
       "      <td>American</td>\n",
       "      <td>None</td>\n",
       "      <td>[-0.11735515, -0.0397448, -0.0072645755, -0.09...</td>\n",
       "      <td>True</td>\n",
       "      <td>Manhattan</td>\n",
       "      <td>{'building': '842', 'coord': [-73.970637000000...</td>\n",
       "      <td>{'$oid': '6095a34a7c34416a90d32017'}</td>\n",
       "      <td>Keats Restaurant</td>\n",
       "      <td>[French fries, Chicken pot pie, Mac &amp; cheese, ...</td>\n",
       "      <td>True</td>\n",
       "      <td>{'coordinates': [-73.97063700000001, 40.751495...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>True</td>\n",
       "      <td>149</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>40363151</td>\n",
       "      <td>{'Alcohol': None, 'Ambience': None, 'BYOB': No...</td>\n",
       "      <td>Bakery</td>\n",
       "      <td>None</td>\n",
       "      <td>[-0.096541286, -0.009661355, 0.04402167, -0.12...</td>\n",
       "      <td>True</td>\n",
       "      <td>Manhattan</td>\n",
       "      <td>{'building': '120', 'coord': [-73.9998042, 40....</td>\n",
       "      <td>{'$oid': '6095a34a7c34416a90d31fbd'}</td>\n",
       "      <td>Olive'S</td>\n",
       "      <td>[doughnuts, chocolate chip cookies, chocolate ...</td>\n",
       "      <td>True</td>\n",
       "      <td>{'coordinates': [-73.9998042, 40.7251256], 'ty...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>None</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  restaurant_id                                         attributes   cuisine  \\\n",
       "0      40366661  {'Alcohol': ''none'', 'Ambience': '{'romantic'...   Tex-Mex   \n",
       "1      40367442  {'Alcohol': ''beer_and_wine'', 'Ambience': '{'...  American   \n",
       "2      40364610  {'Alcohol': ''none'', 'Ambience': '{'touristy'...  American   \n",
       "3      40365288  {'Alcohol': None, 'Ambience': '{'touristy': Fa...  American   \n",
       "4      40363151  {'Alcohol': None, 'Ambience': None, 'BYOB': No...    Bakery   \n",
       "\n",
       "  DogsAllowed                                          embedding  \\\n",
       "0        None  [-0.14520384, 0.018315623, -0.018330636, -0.10...   \n",
       "1        True  [-0.11977468, -0.02157107, 0.0038846824, -0.09...   \n",
       "2        None  [-0.1004329, -0.014882699, -0.033005167, -0.09...   \n",
       "3        None  [-0.11735515, -0.0397448, -0.0072645755, -0.09...   \n",
       "4        None  [-0.096541286, -0.009661355, 0.04402167, -0.12...   \n",
       "\n",
       "  OutdoorSeating        borough  \\\n",
       "0           True      Manhattan   \n",
       "1           True  Staten Island   \n",
       "2           True  Staten Island   \n",
       "3           True      Manhattan   \n",
       "4           True      Manhattan   \n",
       "\n",
       "                                             address  \\\n",
       "0  {'building': '627', 'coord': [-73.975980999999...   \n",
       "1  {'building': '17', 'coord': [-74.1350211, 40.6...   \n",
       "2  {'building': '37', 'coord': [-74.138263, 40.54...   \n",
       "3  {'building': '842', 'coord': [-73.970637000000...   \n",
       "4  {'building': '120', 'coord': [-73.9998042, 40....   \n",
       "\n",
       "                                    _id                    name  \\\n",
       "0  {'$oid': '6095a34a7c34416a90d3206b'}      Baby Bo'S Burritos   \n",
       "1  {'$oid': '6095a34a7c34416a90d3209e'}      Buddy'S Wonder Bar   \n",
       "2  {'$oid': '6095a34a7c34416a90d31ff6'}  Great Kills Yacht Club   \n",
       "3  {'$oid': '6095a34a7c34416a90d32017'}        Keats Restaurant   \n",
       "4  {'$oid': '6095a34a7c34416a90d31fbd'}                 Olive'S   \n",
       "\n",
       "                                                menu  TakeOut  \\\n",
       "0                                               None     True   \n",
       "1  [Grilled cheese sandwich, Baked potato, Lasagn...     True   \n",
       "2  [Mozzarella sticks, Mushroom swiss burger, Spi...     True   \n",
       "3  [French fries, Chicken pot pie, Mac & cheese, ...     True   \n",
       "4  [doughnuts, chocolate chip cookies, chocolate ...     True   \n",
       "\n",
       "                                            location  PriceRange HappyHour  \\\n",
       "0  {'coordinates': [-73.97598099999999, 40.745132...         1.0      None   \n",
       "1  {'coordinates': [-74.1350211, 40.6369042], 'ty...         2.0      None   \n",
       "2  {'coordinates': [-74.138263, 40.546681], 'type...         1.0      None   \n",
       "3  {'coordinates': [-73.97063700000001, 40.751495...         2.0      True   \n",
       "4  {'coordinates': [-73.9998042, 40.7251256], 'ty...         1.0      None   \n",
       "\n",
       "   review_count  sponsored  stars  \n",
       "0            10        NaN    2.5  \n",
       "1            62        NaN    3.5  \n",
       "2            72        NaN    4.0  \n",
       "3           149        NaN    4.0  \n",
       "4             7        NaN    5.0  "
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from datasets import load_dataset\n",
    "import pandas as pd\n",
    "\n",
    "# https://huggingface.co/datasets/AIatMongoDB/whatscooking.restaurants\n",
    "dataset = load_dataset(\"AIatMongoDB/whatscooking.restaurants\")\n",
    "\n",
    "# Convert the dataset to a pandas dataframe\n",
    "dataset_df = pd.DataFrame(dataset[\"train\"])\n",
    "\n",
    "dataset_df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Remove data point where fullplot coloumn is missing\n",
    "# dataset_df = dataset_df.dropna(subset=[\"fullplot\"])\n",
    "# print(\"\\nNumber of missing values in each column after removal:\")\n",
    "# print(dataset_df.isnull().sum())\n",
    "\n",
    "# # Remove the plot_embedding from each data point in the dataset as we are going to create new embeddings with the new OpenAI emebedding Model \"text-embedding-3-small\"\n",
    "# dataset_df = dataset_df.drop(columns=[\"plot_embedding\"])\n",
    "\n",
    "# dataset_df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from llama_index.core.settings import Settings\n",
    "from llama_index.llms.fireworks import Fireworks\n",
    "from llama_index.embeddings.fireworks import FireworksEmbedding\n",
    "\n",
    "embed_model = FireworksEmbedding(\n",
    "    embed_batch_size=1024,\n",
    "    model_name=\"nomic-ai/nomic-embed-text-v1.5\",\n",
    "    api_key=fw_api_key,\n",
    ")\n",
    "llm = Fireworks(\n",
    "    temperature=0,\n",
    "    model=\"accounts/fireworks/models/mixtral-8x7b-instruct\",\n",
    "    api_key=fw_api_key,\n",
    ")\n",
    "\n",
    "Settings.llm = llm\n",
    "Settings.embed_model = embed_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "The LLM sees this: \n",
      " Metadata: restaurant_id=>40366661\n",
      "attributes=>{\"Alcohol\": \"'none'\", \"Ambience\": \"{'romantic': False, 'intimate': False, 'classy': False, 'hipster': False, 'divey': False, 'touristy': False, 'trendy': False, 'upscale': False, 'casual': False}\", \"BYOB\": null, \"BestNights\": null, \"BikeParking\": null, \"BusinessAcceptsBitcoin\": null, \"BusinessAcceptsCreditCards\": null, \"BusinessParking\": \"None\", \"Caters\": \"True\", \"DriveThru\": null, \"GoodForDancing\": null, \"GoodForKids\": \"True\", \"GoodForMeal\": null, \"HasTV\": \"True\", \"Music\": null, \"NoiseLevel\": \"'average'\", \"RestaurantsAttire\": \"'casual'\", \"RestaurantsDelivery\": \"True\", \"RestaurantsGoodForGroups\": \"True\", \"RestaurantsReservations\": \"True\", \"RestaurantsTableService\": \"False\", \"WheelchairAccessible\": \"True\", \"WiFi\": \"'free'\"}\n",
      "cuisine=>\"Tex-Mex\"\n",
      "DogsAllowed=>None\n",
      "OutdoorSeating=>True\n",
      "borough=>\"Manhattan\"\n",
      "address=>{\"building\": \"627\", \"coord\": [-73.975981, 40.745132], \"street\": \"2 Avenue\", \"zipcode\": \"10016\"}\n",
      "_id=>{'$oid': '6095a34a7c34416a90d3206b'}\n",
      "name=>\"Baby Bo'S Burritos\"\n",
      "menu=>null\n",
      "TakeOut=>True\n",
      "location=>{'coordinates': [-73.975981, 40.745132], 'type': 'Point'}\n",
      "PriceRange=>1.0\n",
      "HappyHour=>null\n",
      "review_count=>10\n",
      "sponsored=>None\n",
      "stars=>2.5\n",
      "-----\n",
      "Content: {\"restaurant_id\": \"40366661\", \"attributes\": \"{\\\"Alcohol\\\": \\\"'none'\\\", \\\"Ambience\\\": \\\"{'romantic': False, 'intimate': False, 'classy': False, 'hipster': False, 'divey': False, 'touristy': False, 'trendy': False, 'upscale': False, 'casual': False}\\\", \\\"BYOB\\\": null, \\\"BestNights\\\": null, \\\"BikeParking\\\": null, \\\"BusinessAcceptsBitcoin\\\": null, \\\"BusinessAcceptsCreditCards\\\": null, \\\"BusinessParking\\\": \\\"None\\\", \\\"Caters\\\": \\\"True\\\", \\\"DriveThru\\\": null, \\\"GoodForDancing\\\": null, \\\"GoodForKids\\\": \\\"True\\\", \\\"GoodForMeal\\\": null, \\\"HasTV\\\": \\\"True\\\", \\\"Music\\\": null, \\\"NoiseLevel\\\": \\\"'average'\\\", \\\"RestaurantsAttire\\\": \\\"'casual'\\\", \\\"RestaurantsDelivery\\\": \\\"True\\\", \\\"RestaurantsGoodForGroups\\\": \\\"True\\\", \\\"RestaurantsReservations\\\": \\\"True\\\", \\\"RestaurantsTableService\\\": \\\"False\\\", \\\"WheelchairAccessible\\\": \\\"True\\\", \\\"WiFi\\\": \\\"'free'\\\"}\", \"cuisine\": \"\\\"Tex-Mex\\\"\", \"DogsAllowed\": null, \"OutdoorSeating\": true, \"borough\": \"\\\"Manhattan\\\"\", \"address\": \"{\\\"building\\\": \\\"627\\\", \\\"coord\\\": [-73.975981, 40.745132], \\\"street\\\": \\\"2 Avenue\\\", \\\"zipcode\\\": \\\"10016\\\"}\", \"_id\": {\"$oid\": \"6095a34a7c34416a90d3206b\"}, \"name\": \"\\\"Baby Bo'S Burritos\\\"\", \"menu\": \"null\", \"TakeOut\": true, \"location\": {\"coordinates\": [-73.975981, 40.745132], \"type\": \"Point\"}, \"PriceRange\": \"1.0\", \"HappyHour\": \"null\", \"review_count\": \"10\", \"sponsored\": null, \"stars\": 2.5}\n",
      "\n",
      "The Embedding model sees this: \n",
      " Metadata: restaurant_id=>40366661\n",
      "attributes=>{\"Alcohol\": \"'none'\", \"Ambience\": \"{'romantic': False, 'intimate': False, 'classy': False, 'hipster': False, 'divey': False, 'touristy': False, 'trendy': False, 'upscale': False, 'casual': False}\", \"BYOB\": null, \"BestNights\": null, \"BikeParking\": null, \"BusinessAcceptsBitcoin\": null, \"BusinessAcceptsCreditCards\": null, \"BusinessParking\": \"None\", \"Caters\": \"True\", \"DriveThru\": null, \"GoodForDancing\": null, \"GoodForKids\": \"True\", \"GoodForMeal\": null, \"HasTV\": \"True\", \"Music\": null, \"NoiseLevel\": \"'average'\", \"RestaurantsAttire\": \"'casual'\", \"RestaurantsDelivery\": \"True\", \"RestaurantsGoodForGroups\": \"True\", \"RestaurantsReservations\": \"True\", \"RestaurantsTableService\": \"False\", \"WheelchairAccessible\": \"True\", \"WiFi\": \"'free'\"}\n",
      "cuisine=>\"Tex-Mex\"\n",
      "DogsAllowed=>None\n",
      "OutdoorSeating=>True\n",
      "borough=>\"Manhattan\"\n",
      "address=>{\"building\": \"627\", \"coord\": [-73.975981, 40.745132], \"street\": \"2 Avenue\", \"zipcode\": \"10016\"}\n",
      "_id=>{'$oid': '6095a34a7c34416a90d3206b'}\n",
      "name=>\"Baby Bo'S Burritos\"\n",
      "menu=>null\n",
      "TakeOut=>True\n",
      "location=>{'coordinates': [-73.975981, 40.745132], 'type': 'Point'}\n",
      "PriceRange=>1.0\n",
      "HappyHour=>null\n",
      "review_count=>10\n",
      "sponsored=>None\n",
      "stars=>2.5\n",
      "-----\n",
      "Content: {\"restaurant_id\": \"40366661\", \"attributes\": \"{\\\"Alcohol\\\": \\\"'none'\\\", \\\"Ambience\\\": \\\"{'romantic': False, 'intimate': False, 'classy': False, 'hipster': False, 'divey': False, 'touristy': False, 'trendy': False, 'upscale': False, 'casual': False}\\\", \\\"BYOB\\\": null, \\\"BestNights\\\": null, \\\"BikeParking\\\": null, \\\"BusinessAcceptsBitcoin\\\": null, \\\"BusinessAcceptsCreditCards\\\": null, \\\"BusinessParking\\\": \\\"None\\\", \\\"Caters\\\": \\\"True\\\", \\\"DriveThru\\\": null, \\\"GoodForDancing\\\": null, \\\"GoodForKids\\\": \\\"True\\\", \\\"GoodForMeal\\\": null, \\\"HasTV\\\": \\\"True\\\", \\\"Music\\\": null, \\\"NoiseLevel\\\": \\\"'average'\\\", \\\"RestaurantsAttire\\\": \\\"'casual'\\\", \\\"RestaurantsDelivery\\\": \\\"True\\\", \\\"RestaurantsGoodForGroups\\\": \\\"True\\\", \\\"RestaurantsReservations\\\": \\\"True\\\", \\\"RestaurantsTableService\\\": \\\"False\\\", \\\"WheelchairAccessible\\\": \\\"True\\\", \\\"WiFi\\\": \\\"'free'\\\"}\", \"cuisine\": \"\\\"Tex-Mex\\\"\", \"DogsAllowed\": null, \"OutdoorSeating\": true, \"borough\": \"\\\"Manhattan\\\"\", \"address\": \"{\\\"building\\\": \\\"627\\\", \\\"coord\\\": [-73.975981, 40.745132], \\\"street\\\": \\\"2 Avenue\\\", \\\"zipcode\\\": \\\"10016\\\"}\", \"_id\": {\"$oid\": \"6095a34a7c34416a90d3206b\"}, \"name\": \"\\\"Baby Bo'S Burritos\\\"\", \"menu\": \"null\", \"TakeOut\": true, \"location\": {\"coordinates\": [-73.975981, 40.745132], \"type\": \"Point\"}, \"PriceRange\": \"1.0\", \"HappyHour\": \"null\", \"review_count\": \"10\", \"sponsored\": null, \"stars\": 2.5}\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "from llama_index.core import Document\n",
    "from llama_index.core.schema import MetadataMode\n",
    "\n",
    "# Convert the DataFrame to a JSON string representation\n",
    "documents_json = dataset_df.to_json(orient=\"records\")\n",
    "# Load the JSON string into a Python list of dictionaries\n",
    "documents_list = json.loads(documents_json)\n",
    "\n",
    "llama_documents = []\n",
    "\n",
    "for document in documents_list:\n",
    "    # Value for metadata must be one of (str, int, float, None)\n",
    "    document[\"name\"] = json.dumps(document[\"name\"])\n",
    "    document[\"cuisine\"] = json.dumps(document[\"cuisine\"])\n",
    "    document[\"attributes\"] = json.dumps(document[\"attributes\"])\n",
    "    document[\"menu\"] = json.dumps(document[\"menu\"])\n",
    "    document[\"borough\"] = json.dumps(document[\"borough\"])\n",
    "    document[\"address\"] = json.dumps(document[\"address\"])\n",
    "    document[\"PriceRange\"] = json.dumps(document[\"PriceRange\"])\n",
    "    document[\"HappyHour\"] = json.dumps(document[\"HappyHour\"])\n",
    "    document[\"review_count\"] = json.dumps(document[\"review_count\"])\n",
    "    del document[\"embedding\"]\n",
    "\n",
    "    # Create a Document object with the text and excluded metadata for llm and embedding models\n",
    "    llama_document = Document(\n",
    "        text=json.dumps(document),\n",
    "        metadata=document,\n",
    "        # excluded_llm_metadata_keys=[\"embedding\"],\n",
    "        # excluded_embed_metadata_keys=[\n",
    "        #     \"fullplot\",\n",
    "        #     \"metacritic\",\n",
    "        #     \"poster\",\n",
    "        #     \"num_mflix_comments\",\n",
    "        #     \"runtime\",\n",
    "        #     \"rated\",\n",
    "        # ],\n",
    "        metadata_template=\"{key}=>{value}\",\n",
    "        text_template=\"Metadata: {metadata_str}\\n-----\\nContent: {content}\",\n",
    "    )\n",
    "\n",
    "    llama_documents.append(llama_document)\n",
    "\n",
    "# Observing an example of what the LLM and Embedding model receive as input\n",
    "print(\n",
    "    \"\\nThe LLM sees this: \\n\",\n",
    "    llama_documents[0].get_content(metadata_mode=MetadataMode.LLM),\n",
    ")\n",
    "print(\n",
    "    \"\\nThe Embedding model sees this: \\n\",\n",
    "    llama_documents[0].get_content(metadata_mode=MetadataMode.EMBED),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Document(id_='a4e02dc9-3370-4bbd-8207-b7cb84f802ea', embedding=None, metadata={'restaurant_id': '40366661', 'attributes': '{\"Alcohol\": \"\\'none\\'\", \"Ambience\": \"{\\'romantic\\': False, \\'intimate\\': False, \\'classy\\': False, \\'hipster\\': False, \\'divey\\': False, \\'touristy\\': False, \\'trendy\\': False, \\'upscale\\': False, \\'casual\\': False}\", \"BYOB\": null, \"BestNights\": null, \"BikeParking\": null, \"BusinessAcceptsBitcoin\": null, \"BusinessAcceptsCreditCards\": null, \"BusinessParking\": \"None\", \"Caters\": \"True\", \"DriveThru\": null, \"GoodForDancing\": null, \"GoodForKids\": \"True\", \"GoodForMeal\": null, \"HasTV\": \"True\", \"Music\": null, \"NoiseLevel\": \"\\'average\\'\", \"RestaurantsAttire\": \"\\'casual\\'\", \"RestaurantsDelivery\": \"True\", \"RestaurantsGoodForGroups\": \"True\", \"RestaurantsReservations\": \"True\", \"RestaurantsTableService\": \"False\", \"WheelchairAccessible\": \"True\", \"WiFi\": \"\\'free\\'\"}', 'cuisine': '\"Tex-Mex\"', 'DogsAllowed': None, 'OutdoorSeating': True, 'borough': '\"Manhattan\"', 'address': '{\"building\": \"627\", \"coord\": [-73.975981, 40.745132], \"street\": \"2 Avenue\", \"zipcode\": \"10016\"}', '_id': {'$oid': '6095a34a7c34416a90d3206b'}, 'name': '\"Baby Bo\\'S Burritos\"', 'menu': 'null', 'TakeOut': True, 'location': {'coordinates': [-73.975981, 40.745132], 'type': 'Point'}, 'PriceRange': '1.0', 'HappyHour': 'null', 'review_count': '10', 'sponsored': None, 'stars': 2.5}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='{\"restaurant_id\": \"40366661\", \"attributes\": \"{\\\\\"Alcohol\\\\\": \\\\\"\\'none\\'\\\\\", \\\\\"Ambience\\\\\": \\\\\"{\\'romantic\\': False, \\'intimate\\': False, \\'classy\\': False, \\'hipster\\': False, \\'divey\\': False, \\'touristy\\': False, \\'trendy\\': False, \\'upscale\\': False, \\'casual\\': False}\\\\\", \\\\\"BYOB\\\\\": null, \\\\\"BestNights\\\\\": null, \\\\\"BikeParking\\\\\": null, \\\\\"BusinessAcceptsBitcoin\\\\\": null, \\\\\"BusinessAcceptsCreditCards\\\\\": null, \\\\\"BusinessParking\\\\\": \\\\\"None\\\\\", \\\\\"Caters\\\\\": \\\\\"True\\\\\", \\\\\"DriveThru\\\\\": null, \\\\\"GoodForDancing\\\\\": null, \\\\\"GoodForKids\\\\\": \\\\\"True\\\\\", \\\\\"GoodForMeal\\\\\": null, \\\\\"HasTV\\\\\": \\\\\"True\\\\\", \\\\\"Music\\\\\": null, \\\\\"NoiseLevel\\\\\": \\\\\"\\'average\\'\\\\\", \\\\\"RestaurantsAttire\\\\\": \\\\\"\\'casual\\'\\\\\", \\\\\"RestaurantsDelivery\\\\\": \\\\\"True\\\\\", \\\\\"RestaurantsGoodForGroups\\\\\": \\\\\"True\\\\\", \\\\\"RestaurantsReservations\\\\\": \\\\\"True\\\\\", \\\\\"RestaurantsTableService\\\\\": \\\\\"False\\\\\", \\\\\"WheelchairAccessible\\\\\": \\\\\"True\\\\\", \\\\\"WiFi\\\\\": \\\\\"\\'free\\'\\\\\"}\", \"cuisine\": \"\\\\\"Tex-Mex\\\\\"\", \"DogsAllowed\": null, \"OutdoorSeating\": true, \"borough\": \"\\\\\"Manhattan\\\\\"\", \"address\": \"{\\\\\"building\\\\\": \\\\\"627\\\\\", \\\\\"coord\\\\\": [-73.975981, 40.745132], \\\\\"street\\\\\": \\\\\"2 Avenue\\\\\", \\\\\"zipcode\\\\\": \\\\\"10016\\\\\"}\", \"_id\": {\"$oid\": \"6095a34a7c34416a90d3206b\"}, \"name\": \"\\\\\"Baby Bo\\'S Burritos\\\\\"\", \"menu\": \"null\", \"TakeOut\": true, \"location\": {\"coordinates\": [-73.975981, 40.745132], \"type\": \"Point\"}, \"PriceRange\": \"1.0\", \"HappyHour\": \"null\", \"review_count\": \"10\", \"sponsored\": null, \"stars\": 2.5}', start_char_idx=None, end_char_idx=None, text_template='Metadata: {metadata_str}\\n-----\\nContent: {content}', metadata_template='{key}=>{value}', metadata_seperator='\\n')"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "llama_documents[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from llama_index.core.node_parser import SentenceSplitter\n",
    "\n",
    "parser = SentenceSplitter()\n",
    "nodes = parser.get_nodes_from_documents(llama_documents)\n",
    "\n",
    "# There are 25k documents, so we need to do batching. Fortunately LlamaIndex provides good batching\n",
    "# for embedding models, and we are going to rely on the __call__ method for the model to handle this\n",
    "node_embeddings = embed_model(nodes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ensure your databse, collection and vector store index is setup on MongoDB Atlas for the collection or the following step won't work appropriately on MongoDB.\n",
    "\n",
    "\n",
    " - For assistance with database cluster setup and obtaining the URI, refer to this [guide](https://www.mongodb.com/docs/guides/atlas/cluster/) for setting up a MongoDB cluster, and this [guide](https://www.mongodb.com/docs/guides/atlas/connection-string/) to get your connection string. \n",
    "\n",
    " - Once you have successfully created a cluster, create the database and collection within the MongoDB Atlas cluster by clicking “+ Create Database”. The database will be named movies, and the collection will be named movies_records.\n",
    "\n",
    " - Creating a vector search index within the movies_records collection is essential for efficient document retrieval from MongoDB into our development environment. To achieve this, refer to the official [guide](https://www.mongodb.com/docs/atlas/atlas-vector-search/create-index/) on vector search index creation.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Connection to MongoDB successful\n"
     ]
    }
   ],
   "source": [
    "import pymongo\n",
    "from google.colab import userdata\n",
    "\n",
    "\n",
    "def get_mongo_client(mongo_uri):\n",
    "    \"\"\"Establish connection to the MongoDB.\"\"\"\n",
    "    try:\n",
    "        client = pymongo.MongoClient(mongo_uri)\n",
    "        print(\"Connection to MongoDB successful\")\n",
    "        return client\n",
    "    except pymongo.errors.ConnectionFailure as e:\n",
    "        print(f\"Connection failed: {e}\")\n",
    "        return None\n",
    "\n",
    "\n",
    "mongo_uri = userdata.get(\"MONGO_URI\")\n",
    "if not mongo_uri:\n",
    "    print(\"MONGO_URI not set in environment variables\")\n",
    "\n",
    "mongo_client = get_mongo_client(mongo_uri)\n",
    "\n",
    "DB_NAME = \"movies\"\n",
    "COLLECTION_NAME = \"movies_records\"\n",
    "\n",
    "db = mongo_client[DB_NAME]\n",
    "collection = db[COLLECTION_NAME]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DeleteResult({'n': 0, 'electionId': ObjectId('7fffffff000000000000000a'), 'opTime': {'ts': Timestamp(1708000722, 1), 't': 10}, 'ok': 1.0, '$clusterTime': {'clusterTime': Timestamp(1708000722, 1), 'signature': {'hash': b'\\xd8\\x1a\\xaci\\xf5EN+\\xe2\\xd1\\xb3y8.${u5P\\xf3', 'keyId': 7320226449804230661}}, 'operationTime': Timestamp(1708000722, 1)}, acknowledged=True)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# To ensure we are working with a fresh collection\n",
    "# delete any existing records in the collection\n",
    "collection.delete_many({})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from llama_index.vector_stores.mongodb import MongoDBAtlasVectorSearch\n",
    "\n",
    "vector_store = MongoDBAtlasVectorSearch(\n",
    "    mongo_client,\n",
    "    db_name=DB_NAME,\n",
    "    collection_name=COLLECTION_NAME,\n",
    "    index_name=\"vector_index\",\n",
    ")\n",
    "vector_store.add(nodes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from llama_index.core import VectorStoreIndex, StorageContext\n",
    "\n",
    "index = VectorStoreIndex.from_vector_store(vector_store)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "**`Final Response:`** The movie \"Romancing the Stone\" would be a suitable romantic movie for the Christmas season. It is a romantic adventure film that follows a romance writer who sets off on a dangerous adventure to rescue her kidnapped sister. The movie has elements of romance, adventure, and comedy, making it an entertaining choice for the holiday season. Additionally, the movie has received positive reviews and has been nominated for awards, indicating its quality."
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[NodeWithScore(node=TextNode(id_='c6bbc236-e21d-49ab-b43d-db920b4946e6', embedding=None, metadata={'awards': '{\"nominations\": 2, \"text\": \"Nominated for 1 Oscar. Another 6 wins & 2 nominations.\", \"wins\": 7}', 'metacritic': None, 'rated': 'PG', 'fullplot': \"Joan Wilder, a mousy romance novelist, receives a treasure map in the mail from her recently murdered brother-in-law. Meanwhile, her sister Elaine is kidnapped in Colombia and the two criminals responsible demand that she travel to Colombia to exchange the map for her sister. Joan does, and quickly becomes lost in the jungle after being waylayed by Zolo, a vicious and corrupt Colombian cop who will stop at nothing to obtain the map. There, she meets an irreverent soldier-of-fortune named Jack Colton who agrees to bring her back to civilization. Together, they embark upon an adventure that could be straight out of Joan's novels.\", 'title': 'Romancing the Stone', 'writers': '[\"Diane Thomas\"]', 'languages': '[\"English\", \"Spanish\", \"French\"]', 'plot': 'A romance writer sets off to Colombia to ransom her kidnapped sister, and soon finds herself in the middle of a dangerous adventure.', 'runtime': 106.0, 'countries': '[\"USA\", \"Mexico\"]', 'genres': '[\"Action\", \"Adventure\", \"Comedy\"]', 'directors': '[\"Robert Zemeckis\"]', 'cast': '[\"Michael Douglas\", \"Kathleen Turner\", \"Danny DeVito\", \"Zack Norman\"]', 'type': 'movie', 'imdb': '{\"id\": 88011, \"rating\": 6.9, \"votes\": 59403}', 'poster': 'https://m.media-amazon.com/images/M/MV5BMDAwNjljMzEtMTc3Yy00NDg2LThjNDAtNjc0NGYyYjM2M2I1XkEyXkFqcGdeQXVyNDE5MTU2MDE@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 0}, excluded_embed_metadata_keys=['fullplot', 'metacritic', 'poster', 'num_mflix_comments', 'runtime', 'rated'], excluded_llm_metadata_keys=['fullplot', 'metacritic'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='e50144b0-96ba-4a5a-b90a-3a2419f5b380', node_type=<ObjectType.DOCUMENT: '4'>, metadata={'awards': '{\"nominations\": 2, \"text\": \"Nominated for 1 Oscar. Another 6 wins & 2 nominations.\", \"wins\": 7}', 'metacritic': None, 'rated': 'PG', 'fullplot': \"Joan Wilder, a mousy romance novelist, receives a treasure map in the mail from her recently murdered brother-in-law. Meanwhile, her sister Elaine is kidnapped in Colombia and the two criminals responsible demand that she travel to Colombia to exchange the map for her sister. Joan does, and quickly becomes lost in the jungle after being waylayed by Zolo, a vicious and corrupt Colombian cop who will stop at nothing to obtain the map. There, she meets an irreverent soldier-of-fortune named Jack Colton who agrees to bring her back to civilization. Together, they embark upon an adventure that could be straight out of Joan's novels.\", 'title': 'Romancing the Stone', 'writers': '[\"Diane Thomas\"]', 'languages': '[\"English\", \"Spanish\", \"French\"]', 'plot': 'A romance writer sets off to Colombia to ransom her kidnapped sister, and soon finds herself in the middle of a dangerous adventure.', 'runtime': 106.0, 'countries': '[\"USA\", \"Mexico\"]', 'genres': '[\"Action\", \"Adventure\", \"Comedy\"]', 'directors': '[\"Robert Zemeckis\"]', 'cast': '[\"Michael Douglas\", \"Kathleen Turner\", \"Danny DeVito\", \"Zack Norman\"]', 'type': 'movie', 'imdb': '{\"id\": 88011, \"rating\": 6.9, \"votes\": 59403}', 'poster': 'https://m.media-amazon.com/images/M/MV5BMDAwNjljMzEtMTc3Yy00NDg2LThjNDAtNjc0NGYyYjM2M2I1XkEyXkFqcGdeQXVyNDE5MTU2MDE@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 0}, hash='b984e4f203b7b67eae14afa890718adb800a5816661ac2edf412aa96fd7dc10b'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='f895e43a-038a-4a1c-8a82-0e22868e35d7', node_type=<ObjectType.TEXT: '1'>, metadata={'awards': '{\"nominations\": 1, \"text\": \"1 nomination.\", \"wins\": 0}', 'metacritic': None, 'rated': 'R', 'fullplot': \"Chicago psychiatrist Judd Stevens (Roger Moore) is suspected of murdering one of his patients when the man turns up stabbed to death in the middle of the city. After repeated attempts to convince cops Rod Steiger and Elliott Gould of his innocence, Dr.Stevens is forced to go after the real villains himself, and he finds himself up against one of the city's most notorious Mafia kingpins.\", 'title': 'The Naked Face', 'writers': '[\"Bryan Forbes\", \"Sidney Sheldon (novel)\"]', 'languages': '[\"English\"]', 'plot': 'Chicago psychiatrist Judd Stevens (Roger Moore) is suspected of murdering one of his patients when the man turns up stabbed to death in the middle of the city. After repeated attempts to ...', 'runtime': 103.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Mystery\", \"Thriller\"]', 'directors': '[\"Bryan Forbes\"]', 'cast': '[\"Roger Moore\", \"Rod Steiger\", \"Elliott Gould\", \"Art Carney\"]', 'type': 'movie', 'imdb': '{\"id\": 87777, \"rating\": 5.3, \"votes\": 654}', 'poster': 'https://m.media-amazon.com/images/M/MV5BMTg0NDM4MTY0NV5BMl5BanBnXkFtZTcwNTcwOTc2NA@@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 1}, hash='066e2b3d12c5fab61175f52dd625ec41fb1fce1fe6fe4c892774227c576fdbbd'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='e31f1142-c6b6-4183-b14b-1634166b9d1f', node_type=<ObjectType.TEXT: '1'>, metadata={}, hash='9b9127e21d18792749a7a35321e04d29b8d77f7b454b0133205f9de1090038b4')}, text=\"Joan Wilder, a mousy romance novelist, receives a treasure map in the mail from her recently murdered brother-in-law. Meanwhile, her sister Elaine is kidnapped in Colombia and the two criminals responsible demand that she travel to Colombia to exchange the map for her sister. Joan does, and quickly becomes lost in the jungle after being waylayed by Zolo, a vicious and corrupt Colombian cop who will stop at nothing to obtain the map. There, she meets an irreverent soldier-of-fortune named Jack Colton who agrees to bring her back to civilization. Together, they embark upon an adventure that could be straight out of Joan's novels.\", start_char_idx=0, end_char_idx=635, text_template='Metadata: {metadata_str}\\n-----\\nContent: {content}', metadata_template='{key}=>{value}', metadata_seperator='\\n'), score=0.7502920627593994),\n",
      " NodeWithScore(node=TextNode(id_='5c7cef95-79e3-4c96-a009-4154ea125240', embedding=None, metadata={'awards': '{\"nominations\": 2, \"text\": \"Nominated for 2 Oscars. Another 1 win & 2 nominations.\", \"wins\": 3}', 'metacritic': 64.0, 'rated': 'PG-13', 'fullplot': 'In 1880, four men travel together to the city of Silverado. They come across with many dangers before they finally engage the \"bad guys\" and bring peace and equality back to the city.', 'title': 'Silverado', 'writers': '[\"Lawrence Kasdan\", \"Mark Kasdan\"]', 'languages': '[\"English\"]', 'plot': 'A misfit bunch of friends come together to right the injustices which exist in a small town.', 'runtime': 133.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Crime\", \"Drama\"]', 'directors': '[\"Lawrence Kasdan\"]', 'cast': '[\"Kevin Kline\", \"Scott Glenn\", \"Kevin Costner\", \"Danny Glover\"]', 'type': 'movie', 'imdb': '{\"id\": 90022, \"rating\": 7.2, \"votes\": 26415}', 'poster': 'https://m.media-amazon.com/images/M/MV5BYTljNTE5YmUtMGEyZi00ZjI4LWEzYjUtZDY2YWEwNzVmZjRkXkEyXkFqcGdeQXVyNTI4MjkwNjA@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 1}, excluded_embed_metadata_keys=['fullplot', 'metacritic', 'poster', 'num_mflix_comments', 'runtime', 'rated'], excluded_llm_metadata_keys=['fullplot', 'metacritic'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='decbc30c-c17e-4ba4-bd1e-72dce4ce383a', node_type=<ObjectType.DOCUMENT: '4'>, metadata={'awards': '{\"nominations\": 2, \"text\": \"Nominated for 2 Oscars. Another 1 win & 2 nominations.\", \"wins\": 3}', 'metacritic': 64.0, 'rated': 'PG-13', 'fullplot': 'In 1880, four men travel together to the city of Silverado. They come across with many dangers before they finally engage the \"bad guys\" and bring peace and equality back to the city.', 'title': 'Silverado', 'writers': '[\"Lawrence Kasdan\", \"Mark Kasdan\"]', 'languages': '[\"English\"]', 'plot': 'A misfit bunch of friends come together to right the injustices which exist in a small town.', 'runtime': 133.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Crime\", \"Drama\"]', 'directors': '[\"Lawrence Kasdan\"]', 'cast': '[\"Kevin Kline\", \"Scott Glenn\", \"Kevin Costner\", \"Danny Glover\"]', 'type': 'movie', 'imdb': '{\"id\": 90022, \"rating\": 7.2, \"votes\": 26415}', 'poster': 'https://m.media-amazon.com/images/M/MV5BYTljNTE5YmUtMGEyZi00ZjI4LWEzYjUtZDY2YWEwNzVmZjRkXkEyXkFqcGdeQXVyNTI4MjkwNjA@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 1}, hash='80b77d835c7dfad9d57d300cf69ba388704e6f282f49dc23106489db03b8b441'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='1c04fb7f-ff8f-4e8c-84f6-74c57251446a', node_type=<ObjectType.TEXT: '1'>, metadata={'awards': '{\"nominations\": 5, \"text\": \"Nominated for 3 Oscars. Another 2 wins & 5 nominations.\", \"wins\": 5}', 'metacritic': None, 'rated': 'R', 'fullplot': 'A hardened convict and a younger prisoner escape from a brutal prison in the middle of winter only to find themselves on an out-of-control train with a female railway worker while being pursued by the vengeful head of security.', 'title': 'Runaway Train', 'writers': '[\"Djordje Milicevic (screenplay)\", \"Paul Zindel (screenplay)\", \"Edward Bunker (screenplay)\", \"Akira Kurosawa (based on a screenplay by)\"]', 'languages': '[\"English\"]', 'plot': 'Two escaped convicts and a female railway worker find themselves trapped on a train with no brakes and nobody driving.', 'runtime': 111.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Adventure\", \"Drama\"]', 'directors': '[\"Andrey Konchalovskiy\"]', 'cast': '[\"Jon Voight\", \"Eric Roberts\", \"Rebecca De Mornay\", \"Kyle T. Heffner\"]', 'type': 'movie', 'imdb': '{\"id\": 89941, \"rating\": 7.3, \"votes\": 19652}', 'poster': 'https://m.media-amazon.com/images/M/MV5BODQyYWU1NGUtNjEzYS00YmNhLTk1YWEtZDdlZGQzMTI4MTI1XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 0}, hash='378c16de972df97080db94775cd46e57f6a0dd5a7472b357e0285eed2e3b7775'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='5df9410b-6597-45f4-95d5-fee1db8737b1', node_type=<ObjectType.TEXT: '1'>, metadata={}, hash='77e93faace9b0e102635d3ca997ff27bc03dbba66eaa2d830f0634289d16d927')}, text='In 1880, four men travel together to the city of Silverado. They come across with many dangers before they finally engage the \"bad guys\" and bring peace and equality back to the city.', start_char_idx=0, end_char_idx=183, text_template='Metadata: {metadata_str}\\n-----\\nContent: {content}', metadata_template='{key}=>{value}', metadata_seperator='\\n'), score=0.7419796586036682),\n",
      " NodeWithScore(node=TextNode(id_='ff28e815-5db5-4963-a9b8-99c64716eb00', embedding=None, metadata={'awards': '{\"nominations\": 1, \"text\": \"1 nomination.\", \"wins\": 0}', 'metacritic': None, 'rated': 'PASSED', 'fullplot': \"Dick Powell stars as Haven, a government private investigator assigned to investigate the murders of two cavalrymen. Travelling incognito, Haven arrives in a small frontier outpost, where saloon singer Charlie controls all illegal activities. After making short work of Charlie's burly henchman, Haven gets a job at her gambling emporium, biding his time and gathering evidence against the gorgeous crime chieftain Cast as a philosophical bartender, Burl Ives is afforded at least one opportunity to sing.\", 'title': 'Station West', 'writers': '[\"Frank Fenton (screenplay)\", \"Winston Miller (screenplay)\", \"Luke Short (novel)\"]', 'languages': '[\"English\"]', 'plot': 'When two US cavalrymen transporting a gold shipment get killed, US Army Intelligence investigator John Haven goes undercover to a mining and logging town to find the killers.', 'runtime': 87.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Mystery\", \"Romance\"]', 'directors': '[\"Sidney Lanfield\"]', 'cast': '[\"Dick Powell\", \"Jane Greer\", \"Agnes Moorehead\", \"Burl Ives\"]', 'type': 'movie', 'imdb': '{\"id\": 40835, \"rating\": 6.8, \"votes\": 578}', 'poster': 'https://m.media-amazon.com/images/M/MV5BN2U3YWJjOWItOWY3Yy00NTMxLTkxMGUtOTQ1MzEzODM2MjRjXkEyXkFqcGdeQXVyNTk1MTk0MDI@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 1}, excluded_embed_metadata_keys=['fullplot', 'metacritic', 'poster', 'num_mflix_comments', 'runtime', 'rated'], excluded_llm_metadata_keys=['fullplot', 'metacritic'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='b04254ab-2edb-47c1-9412-646575747ca8', node_type=<ObjectType.DOCUMENT: '4'>, metadata={'awards': '{\"nominations\": 1, \"text\": \"1 nomination.\", \"wins\": 0}', 'metacritic': None, 'rated': 'PASSED', 'fullplot': \"Dick Powell stars as Haven, a government private investigator assigned to investigate the murders of two cavalrymen. Travelling incognito, Haven arrives in a small frontier outpost, where saloon singer Charlie controls all illegal activities. After making short work of Charlie's burly henchman, Haven gets a job at her gambling emporium, biding his time and gathering evidence against the gorgeous crime chieftain Cast as a philosophical bartender, Burl Ives is afforded at least one opportunity to sing.\", 'title': 'Station West', 'writers': '[\"Frank Fenton (screenplay)\", \"Winston Miller (screenplay)\", \"Luke Short (novel)\"]', 'languages': '[\"English\"]', 'plot': 'When two US cavalrymen transporting a gold shipment get killed, US Army Intelligence investigator John Haven goes undercover to a mining and logging town to find the killers.', 'runtime': 87.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Mystery\", \"Romance\"]', 'directors': '[\"Sidney Lanfield\"]', 'cast': '[\"Dick Powell\", \"Jane Greer\", \"Agnes Moorehead\", \"Burl Ives\"]', 'type': 'movie', 'imdb': '{\"id\": 40835, \"rating\": 6.8, \"votes\": 578}', 'poster': 'https://m.media-amazon.com/images/M/MV5BN2U3YWJjOWItOWY3Yy00NTMxLTkxMGUtOTQ1MzEzODM2MjRjXkEyXkFqcGdeQXVyNTk1MTk0MDI@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 1}, hash='90f541ac96dcffa4ac639e6ac25da415471164bf8d7930a29b6aed406d631ede'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='a48d8737-8615-48c1-9d4a-1ee127e34fb9', node_type=<ObjectType.TEXT: '1'>, metadata={'awards': '{\"nominations\": 1, \"text\": \"1 nomination.\", \"wins\": 0}', 'metacritic': None, 'rated': 'PASSED', 'fullplot': 'Jefty, owner of a roadhouse in a backwoods town, hires sultry, tough-talking torch singer Lily Stevens against the advice of his manager Pete Morgan. Jefty is smitten with Lily, who in turn exerts her charms on the more resistant Pete. When Pete finally falls for her and she turns down Jefty\\'s marriage proposal, they must face Jefty\\'s murderous jealousy and his twisted plots to \"punish\" the two.', 'title': 'Road House', 'writers': '[\"Edward Chodorov (screen play)\", \"Margaret Gruen (story)\", \"Oscar Saul (story)\"]', 'languages': '[\"English\"]', 'plot': 'A night club owner becomes infatuated with a torch singer and frames his best friend/manager for embezzlement when the chanteuse falls in love with him.', 'runtime': 95.0, 'countries': '[\"USA\"]', 'genres': '[\"Action\", \"Drama\", \"Film-Noir\"]', 'directors': '[\"Jean Negulesco\"]', 'cast': '[\"Ida Lupino\", \"Cornel Wilde\", \"Celeste Holm\", \"Richard Widmark\"]', 'type': 'movie', 'imdb': '{\"id\": 40740, \"rating\": 7.3, \"votes\": 1353}', 'poster': 'https://m.media-amazon.com/images/M/MV5BMjc1ZTNkM2UtYzY3Yi00ZWZmLTljYmEtNjYxZDNmYzk2ZjkzXkEyXkFqcGdeQXVyMjUxODE0MDY@._V1_SY1000_SX677_AL_.jpg', 'num_mflix_comments': 2}, hash='040b4a77fcc8fbb5347620e99a217d67b85dcdbd370d91bd23877722a499079f'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='75f37fbc-d75e-4a76-b86f-f15d9260afd1', node_type=<ObjectType.TEXT: '1'>, metadata={}, hash='9941706d03783561f3fc3200c26527493a62307f8532dcda60b20948c886b330')}, text=\"Dick Powell stars as Haven, a government private investigator assigned to investigate the murders of two cavalrymen. Travelling incognito, Haven arrives in a small frontier outpost, where saloon singer Charlie controls all illegal activities. After making short work of Charlie's burly henchman, Haven gets a job at her gambling emporium, biding his time and gathering evidence against the gorgeous crime chieftain Cast as a philosophical bartender, Burl Ives is afforded at least one opportunity to sing.\", start_char_idx=0, end_char_idx=505, text_template='Metadata: {metadata_str}\\n-----\\nContent: {content}', metadata_template='{key}=>{value}', metadata_seperator='\\n'), score=0.7337073087692261)]\n"
     ]
    }
   ],
   "source": [
    "import pprint\n",
    "from llama_index.core.response.notebook_utils import display_response\n",
    "\n",
    "query_engine = index.as_query_engine(similarity_top_k=3)\n",
    "\n",
    "query = \"Recommend a restaurants suitable for the christmas season and justify your selecton\"\n",
    "\n",
    "response = query_engine.query(query)\n",
    "display_response(response)\n",
    "pprint.pprint(response.source_nodes)"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
